<template>
	<div>
		<h1>{{msg}}</h1>
		<h2>学生姓名：{{name}}</h2>
		<h2>学生性别：{{sex}}</h2>
		<h2>学生年龄：{{myAge+1}}</h2>
		<button @click="updateAge">尝试修改收到的年龄</button>
	</div>
</template>

<script>
	export default {
		name:'Student',
		// 函数式定义data
		data() {
			// 输出VC实例
			console.log(this)
			return {
				msg:'我是一个开放Vue Cli的学生',
				// 将props属性赋值给myAge
				myAge:this.age
			}
		},
		// 对象式定义methods
		methods: {
			updateAge(){
				// 尝试修改age报错
				// this.age=123
				// 增加一个中间变量myAge
				this.myAge++
			}
		},
		//简单声明接收，接收的数据在组件实例VC上，工作中常用。
		// props:['name','age','sex'] 

		//接收的同时对数据进行类型限制
		/* props:{
			name:String,
			age:Number,
			sex:String
		} */

		//接收的同时对数据：进行类型限制+默认值的指定+必要性的限制
		// 最完整用于关键信息，如果属性重名，props信息优先data放在VC上。
		props:{
			name:{
				type:String, //name的类型是字符串
				required:true, //name是必要的
			},
			age:{
				type:Number,
				default:99 //默认值
			},
			sex:{
				type:String,
				required:true
			}
		}
	}
</script>